<?php
//declare(strict_types=1);

namespace app\utils;

/**
 * 计算工具类
 *
 * @package App\Utils
 */
class CalculateUtil
{
    /**
     * 两个数相加
     *
     * @param $leftOperand double 左运算数
     * @param $rightOperand double 右运算数
     * @param int $scale 保留几位小数
     * @return string
     */
    public static function add($leftOperand, $rightOperand, $scale = 0)
    {
        return bcadd($leftOperand, $rightOperand, $scale);
    }

    /**
     * 两个数相乘
     *
     * @param $leftOperand double 左运算数
     * @param $rightOperand double 右运算数
     * @param int $scale 保留几位小数
     * @return string
     */
    public static function mul($leftOperand, $rightOperand, $scale = 0)
    {
        return bcmul($leftOperand, $rightOperand, $scale);
    }

    /**
     * 两个数相除
     *
     * @param $dividend double 被除数
     * @param $divisor double 除数
     * @param int $scale 保留几位小数
     * @return string|null
     */
    public static function div($dividend, $divisor, $scale = 0)
    {
        return bcdiv($dividend, $divisor, $scale);
    }

    /**
     * 两个数相减
     *
     * @param $leftOperand double 左运算数
     * @param $rightOperand double 右运算数
     * @param int $scale 保留几位小数
     * @return string
     */
    public static function sub($leftOperand, $rightOperand, $scale = 0)
    {
        return bcsub($leftOperand, $rightOperand, $scale);
    }
}
